iT邦幫忙

2022 iThome 鐵人賽

DAY 27
0

在 E2E 測試中,因為要真正的整合前後端進行測試,所以難免會遇到登入之類的問題。

如果要在每個 test 去進行登入,會是非常沒有效率的行為。

這時候就可以搭配 globalSetup 來進行登入、並將登入後的 localStorage 存下來。

再搭配 PlaywrightTestConfig.use.storageState 設定,將存下的狀態灌入每個測試之中,這樣就可以做到在開始測試時登入一次,爾後的每個 test 都保有登入狀態了。

當然這是因為我們的登入狀態是透過 token 保存在 localStorage ,如果你的專案不是這樣設計的,那就要再進行調整囉。

// playwright.config.ts
import type { PlaywrightTestConfig } from '@playwright/test'

const config: PlaywrightTestConfig = {
  testDir: 'playwright',
  timeout: 60 * 1000,
  retries: 1,
  globalSetup: './playwright/global-setup',
  globalTeardown: './playwright/global-teardown',
  use: {
    storageState: './playwright/storageState.json',
  },
}
export default config
// playwright/global-setup.ts
import { chromium } from '@playwright/test'
import { login } from './common'

async function globalSetup() {const browser = await chromium.launch()
  const page = await browser.newPage()
  await login(page)
  await page.context().storageState({ path: storageStatePath })
  await browser.close()
}

export default globalSetup

上一篇
Playwright 作為 E2E 測試框架的優點
系列文
前端開發維護筆記 - 打造健康的前端專案27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言